package org.xx.armory.swing.builders;

import org.xx.armory.objectparser.LineInfo;

/**
 * 占位符模型。
 */
public class PlaceholderModel
        extends AbstractComponentModel
        implements ComponentModel {
    private final String className;
    private final boolean scrollable;

    /**
     * 构造解析对象。
     *
     * @param lineInfo
     *         源文件中的位置信息。
     * @param name
     *         组件的名字。
     * @param visible
     *         组件是否可见。
     * @param className
     *         组件的完整类型名。
     * @param scrollable
     *         是否需要加入滚动条。
     */
    protected PlaceholderModel(
            LineInfo lineInfo,
            String name,
            boolean visible,
            String className,
            boolean scrollable
    ) {
        super(lineInfo, name, visible);
        this.className = className;
        this.scrollable = scrollable;
    }

    /**
     * 获取该占位符对应的组件的完整类名。
     *
     * @return 该占位符对应的组件的完整类名。
     */
    public final String getClassName() {
        return this.className;
    }

    /**
     * 判断该占位符对应的组件是否应当放入滚动区域中。
     *
     * @return 该占位符对应的组件是否应当放入滚动区域中。
     */
    public final boolean isScrollable() {
        return this.scrollable;
    }
}
